package com.gopay.common.domain.cust;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

import com.gopay.common.cipher.utils.LoggerMaskUtils;
import com.gopay.common.cipher.utils.SensitiveInfoUtils;
import com.gopay.common.domain.BaseEntity;

@Entity
@Table(name = "CUST_PERSON_INFO")
public class CustPersonInfo extends BaseEntity {
    private static final long serialVersionUID = 2464027834800369197L;
    // private String confSq;
    // private String userInfoId;
    // private String rcsAntiPhishingConfId;
    private String custId;
    private int version;
    private String isRealNameCertify;
    private String isMobileCertify;
    private String custStat;
    private String certType;
    private String certNo;
    private String custName;
    private String custAddr;
    private String custProvinceCode;
    private String custCityCode;
    private String custZip;
    private String custTel;
    private String custMob;
    private Date realNameCertifyTime;
    private Date mobileCertifyTime;
    private Date createdTs;
    private Date lastUpdTs;
    private String lastUpdTrancode;
    private String email;
    private Integer privilege;
    private String certFileUrl; 
    private String custSex;
    private String custCoutryRegion;
    private String certValidityDateS;
    private String certValidityDateE;
    private String regType;
    private String custProession;
    //注册流程优化新增字段 wanggang20141230
    private Date certTerm;//证件有效期
    
    //Add by xiefei 20130619
    /**
     * 激活码
     */
    private String activateCode;
    
    //Add by hjy 2013-05-20-->>
    /**
     * 支付密码
     */
    private String payPwd;
    
    /**
     * 支付密码安全问题
     */
    private String payQus;
    
    /**
     * 当日密码错误次数
     */
    private Integer todayPwdErrNum;
    
    /**
     * 累计密码错误次数
     */
    private Integer totalPwdErrNum;
    
    /**
     * "支付密码状态
        0 - 正常
        1 - 当日锁定
        2 - 永久锁定"
     */
    private Integer payPwdStatus;
    
    /**
     * 支付密码安全问题答案
     */
    private String payQusAnswer;
    
    /**
     * 支付密码安全问题错误次数
     */
    private Integer totalPwdQusErrNum;
    
    /**
     * "支付密码安全问题状态
        0 - 正常
        1 - 锁定
        2 - 永久锁定"
     */
    private Integer payQusAnsStatus;
    
    /**
     * 支付密码锁定时间
     */
    private Date payPwdLockTime;
    
    /**
     * 支付密码安全问题锁定时间
     */
    private Date payPwdQusLockTime;
    /**
     * 手机支付密码
     */
    private String mtPayPwd;
    
    
    /**
     * 手机当日密码错误次数
     */
    private Integer todayMtPwdErrNum;
    
    /**
     * 手机累计密码错误次数
     */
    private Integer totalMtPwdErrNum;
    
    /**
     * "手机支付密码状态
        0 - 正常
        1 - 当日锁定
        2 - 永久锁定"
     */
    private Integer mtPayPwdStatus;
    
    
    /**
     * 手机支付密码找回错误次数
     */
    private Integer totalMtPwdFindErrNum;
    
    
    /**
     * 手机支付密码锁定时间
     */
    private Date mtPayPwdLockTime;
    
    /*
     * @Id
     * 
     * @Column(name = "CONF_SQ", unique = true, nullable = false, length = 30)
     * public String getConfSq() { return this.confSq; }
     * 
     * public void setConfSq(String confSq) { this.confSq = confSq; }
     * 
     * @JoinColumn(name = "INFO_SQ") public String getUserInfoId() { return
     * this.userInfoId; }
     * 
     * public void setUserInfoId(String userInfoId) { this.userInfoId =
     * userInfoId; }
     * 
     * @JoinColumn(name = "RCS_CONF_SQ") public String
     * getRcsAntiPhishingConfId() { return this.rcsAntiPhishingConfId; }
     * 
     * public void setRcsAntiPhishingConfId(String rcsAntiPhishingConfId) {
     * this.rcsAntiPhishingConfId = rcsAntiPhishingConfId; }
     */

    //新增实名认证相关字段Add by wanggang 2014-07-25
    /**
     * 当日申请实名认证错误次数
     */
    private int todayRealNameCertErrNum;
    
    /**
     * 实名认证状态00未实名认证-01新生认证未通过-02新生认证已通过-03图片已上传，待审核-04 审核不通过-05 审核通过，已实名
     */
    private String realNameCertStatus;
    
    /**
     * 审核信息
     */
    private String remarks;
    
    /**
     * 审核操作员Id
     */
    private String operId;
    
    /**
     * 证件文件背面保存路径
     */
    private String certBackFileUrl; 
    
    /**
     * 证件文件缩略图保存路径
     */
    private String certThumbFileUrl; 
    
    /**
     * 证件文件背面缩略图保存路径
     */
    private String certBackThumbFileUrl; 
    
    /**
     * 证件文件提交审核时间
     */
    private Date certFileCreatedTs;
    
    /**
     * 证件文件审核时间
     */
    private Date certFileAuditTs;
    
    /**
     * 实名认证发起时间
     */
    private Date certLaunchTime;
    
    /**
     * 其他职业
     */
    private String myProfession;
    
    /**
     * 客户昵称
     */
    private String nickName;
    
    
    /**
     * 手机手势密码
     */
    private String mtGesturePwd;
    
    
    /**
     * 手机手势密码状态，0：开启，1：未开启
     */
    private Integer mtGesPwdStatus;
    
    /**
     * 个人头像地址
     */
    private String avatarUrl;
    
    /**
     * 付款码状态0：开启，1：关闭'
     */
    private Integer payCodeStatus;
    
    /**
     * 指纹密码状态 0：开启，1：关闭'
     */
    private Integer fingerPwdStatus;
    
    /**
     * 指纹支付额度
     */
    private BigDecimal fingerPayUpLimit;
    
	/*zhoutong add 20160913 start*/
	/**
	 * 数字证书开关
	 */
	private String caCertSwitch;
	
	/**
	 * 动态口令开关
	 */
	private String dynPwdSwitch;
	/*zhoutong add 20160913 end*/
    
    /**
     * <p>实名认证步骤
     * <p>00-审核通过
     * <p>20-待国付宝审核
     * <p>11-待补全信息（需补全身份证正反面）
     * <p>12-待补全信息（需补全职业，支付密码/问题）
     * <p>13-待补全信息（需补全职业，支付密码/问题，身份证正反面）
     * <p>14-待补全信息（需补全姓名身份证，职业，支付密码/问题，身份证正反面）
     * <p>19-存量被注销 进入补全信息页面
     */
    private String realNameCertifyStep;

    /*
    *  身份证校验次数
    * */
    private Integer certNoCheckNum;


    /**
     * 手持身份证照片存放路径
     */
    private String certHandheldIDFileUrl;

    /**
     * 手持身份证照片缩略图存放路径
     */
    private String certHandheldIDThumbFileUrl;

    /**
     * 注册IP
     */
    private String registerIp;
    /**
     * 人脸图片
     */
    private String certFaceIDFileUrl;
    /**
     * 人脸图片缩略图
     */
    private String certFaceIDThumbFileUrl;
    /**
     * 人脸识别视频
     */
    private String certVideoFileUrl;
    /**
     * 认证渠道01:手持身份证02:人脸识别
     */
    private String realNameChannel;
    /**
     * 人脸识别动作
     */
    private String certFaceIdAction;
    /**
     * 人脸识别分数，与证件照评分
     */
    private BigDecimal certFaceIdScore;

    
    /**
     * 是否公司员工
     * add by zhoupeng 20170414
     */
    private String isEmployees;
    
    /**
     * 移动数字证书开关
     */
    private String mobCaCertSwitch;
    
    /**
     * 自定义支付密码
     * add by zhoupeng 20171110
     */
    private String customPayPwd;
    /**
     * 自定义当日密码错误次数
     * add by zhoupeng 20171110
     */
    private Integer todayCustomPwdErrNum;
    
    /**
     * 自定义累计密码错误次数
     * add by zhoupeng 20171110
     */
    private Integer totalCustomPwdErrNum;
    
    /**
     * "自定义支付密码状态
        0 - 正常
        1 - 当日锁定
        2 - 永久锁定"
        add by zhoupeng 20171110
     */
    private Integer customPayPwdStatus;
    
    /**
     * 自定义支付密码锁定时间
     */
    private Date customPayPwdLockTime;
    
    /**
	 * 商户用户开户唯一标识
	 */
	private String merCustId;
	
    @Id
    @Column(name = "CUST_ID", unique = true, nullable = false, length = 10)
    public String getCustId() {
        return this.custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    @Version
    @Column(name = "VERSION", nullable = false, precision = 22, scale = 0)
    public int getVersion() {
        return this.version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    @Column(name = "IS_REAL_NAME_CERTIFY", length = 1)
    public String getIsRealNameCertify() {
        return this.isRealNameCertify;
    }

    public void setIsRealNameCertify(String isRealNameCertify) {
        this.isRealNameCertify = isRealNameCertify;
    }

    @Column(name = "IS_MOBILE_CERTIFY", length = 1)
    public String getIsMobileCertify() {
        return this.isMobileCertify;
    }

    public void setIsMobileCertify(String isMobileCertify) {
        this.isMobileCertify = isMobileCertify;
    }

    @Column(name = "CUST_STAT", nullable = false, length = 2)
    public String getCustStat() {
        return this.custStat;
    }

    public void setCustStat(String custStat) {
        this.custStat = custStat;
    }

    @Column(name = "CERT_TYPE", length = 2)
    public String getCertType() {
        return this.certType;
    }

    public void setCertType(String certType) {
        this.certType = certType;
    }

    @Column(name = "CERT_NO", length = 150)
    public String getCertNo() {
    	/**
		 * modify by ssj，2017-4-10 在程序中获取的时候进行解密操作，如果是hibernate自己调用（save等），则返回原值；
		 */
		this.certNo = SensitiveInfoUtils.autoReencrypt(this.certNo);
		return SensitiveInfoUtils.smartDecryptWithCheck(this.certNo);
//        return this.certNo;
    }

    public void setCertNo(String certNo) {
    	/**
		 * modified by ssj，2017-4-10 判断传入字符串是否经过加密，如果是，则设置为原文，否则设置为加密后的值
		 */
		this.certNo = SensitiveInfoUtils.smartEncryptWithCheck(certNo);
//        this.certNo = certNo;
    }

    @Column(name = "CUST_NAME", length = 50)
    public String getCustName() {
        return this.custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    @Column(name = "CUST_ADDR", length = 200)
    public String getCustAddr() {
        return this.custAddr;
    }

    public void setCustAddr(String custAddr) {
        this.custAddr = custAddr;
    }

    @Column(name = "CUST_PROVINCE_CODE", length = 20)
    public String getCustProvinceCode() {
        return this.custProvinceCode;
    }

    public void setCustProvinceCode(String custProvinceCode) {
        this.custProvinceCode = custProvinceCode;
    }

    @Column(name = "CUST_CITY_CODE", length = 20)
    public String getCustCityCode() {
        return this.custCityCode;
    }

    public void setCustCityCode(String custCityCode) {
        this.custCityCode = custCityCode;
    }

    @Column(name = "CUST_ZIP", length = 10)
    public String getCustZip() {
        return this.custZip;
    }

    public void setCustZip(String custZip) {
        this.custZip = custZip;
    }

    @Column(name = "CUST_TEL", length = 150)
    public String getCustTel() {
        //edit hougn 2017-5-25 在程序中获取的时候进行解密操作，如果是hibernate自己调用（save等），则返回原值 
        this.custTel = SensitiveInfoUtils.autoReencrypt(this.custTel);
        return SensitiveInfoUtils.smartDecryptWithCheck(this.custTel);
    }

    public void setCustTel(String custTel) {
        //edit hougn 2017-5-25 在程序中获取的时候进行解密操作，如果是hibernate自己调用（save等），则返回原值 
        this.custTel = SensitiveInfoUtils.smartEncryptWithCheck(custTel);
    }

    @Column(name = "CUST_MOB", length = 150)
    public String getCustMob() {
    	/**
		 * modify by ssj，2017-4-10 在程序中获取的时候进行解密操作，如果是hibernate自己调用（save等），则返回原值；
		 */
		this.custMob = SensitiveInfoUtils.autoReencrypt(this.custMob);
		return SensitiveInfoUtils.smartDecryptWithCheck(this.custMob);
//        return this.custMob;
    }

    public void setCustMob(String custMob) {
    	/**
		 * modified by ssj，2017-4-10 判断传入字符串是否经过加密，如果是，则设置为原文，否则设置为加密后的值
		 */
		this.custMob = SensitiveInfoUtils.smartEncryptWithCheck(custMob);
//        this.custMob = custMob;
    }

    @Column(name = "REAL_NAME_CERTIFY_TIME")
    public Date getRealNameCertifyTime() {
        return realNameCertifyTime;
    }

    public void setRealNameCertifyTime(Date realNameCertifyTime) {
        this.realNameCertifyTime = realNameCertifyTime;
    }

    @Column(name = "MOBILE_CERTIFY_TIME")
    public Date getMobileCertifyTime() {
        return mobileCertifyTime;
    }

    public void setMobileCertifyTime(Date mobileCertifyTime) {
        this.mobileCertifyTime = mobileCertifyTime;
    }

    @Column(name = "CREATED_TS")
    public Date getCreatedTs() {
        return this.createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    @Column(name = "LAST_UPD_TS")
    public Date getLastUpdTs() {
        return this.lastUpdTs;
    }

    public void setLastUpdTs(Date lastUpdTs) {
        this.lastUpdTs = lastUpdTs;
    }

    @Column(name = "LAST_UPD_TRANCODE", length = 6)
    public String getLastUpdTrancode() {
        return this.lastUpdTrancode;
    }

    public void setLastUpdTrancode(String lastUpdTrancode) {
        this.lastUpdTrancode = lastUpdTrancode;
    }

    @Column(name = "EMAIL", length = 50)
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Column(name = "PRIVILEGE")
    public Integer getPrivilege() {
        return privilege;
    }

    public void setPrivilege(Integer privilege) {
        this.privilege = privilege;
    }

    @Column(name = "CERT_FILE_URL", length = 1000)
    public String getCertFileUrl() {
        return certFileUrl;
    }

    public void setCertFileUrl(String certFileUrl) {
        this.certFileUrl = certFileUrl;
    }

    /**
     * @return the custSex
     */
    @Column(name = "CUST_SEX")
    public String getCustSex() {
        return custSex;
    }

    /**
     * @param custSex the custSex to set
     */
    public void setCustSex(String custSex) {
        this.custSex = custSex;
    }

    /**
     * @return the custCoutryRegion
     */
    @Column(name = "CUST_COUTRY_REGION")
    public String getCustCoutryRegion() {
        return custCoutryRegion;
    }

    /**
     * @param custCoutryRegion the custCoutryRegion to set
     */
    public void setCustCoutryRegion(String custCoutryRegion) {
        this.custCoutryRegion = custCoutryRegion;
    }

    /**
     * @return the certValidityDateS
     */
    @Column(name = "CERT_VALIDITY_DATE_S")
    public String getCertValidityDateS() {
        return certValidityDateS;
    }

    /**
     * @param certValidityDateS the certValidityDateS to set
     */
    public void setCertValidityDateS(String certValidityDateS) {
        this.certValidityDateS = certValidityDateS;
    }

    /**
     * @return the certValidityDateE
     */
    @Column(name = "CERT_VALIDITY_DATE_E")
    public String getCertValidityDateE() {
        return certValidityDateE;
    }

    /**
     * @param certValidityDateE the certValidityDateE to set
     */
    public void setCertValidityDateE(String certValidityDateE) {
        this.certValidityDateE = certValidityDateE;
    }

    /**
     * @return the regType
     */
    @Column(name = "REG_TYPE")
    public String getRegType() {
        return regType;
    }

    /**
     * @param regType the regType to set
     */
    public void setRegType(String regType) {
        this.regType = regType;
    }
    @Column(name = "CUST_PROFESSION")
    public String getCustProession() {
        return custProession;
    }

    public void setCustProession(String custProession) {
        this.custProession = custProession;
    }

    @Column(name = "PAY_PWD", length = 150)
    public String getPayPwd() {
        return payPwd;
    }

    public void setPayPwd(String payPwd) {
        this.payPwd = payPwd;
    }

    @Column(name = "PAY_QUS", length = 150)
    public String getPayQus() {
        return payQus;
    }

    public void setPayQus(String payQus) {
        this.payQus = payQus;
    }

    @Column(name = "TODAY_PWD_ERR_NUM",  precision = 1, scale = 0)
    public Integer getTodayPwdErrNum() {
        if(todayPwdErrNum == null) {
            return 0;
        }
        return todayPwdErrNum;
    }

    public void setTodayPwdErrNum(Integer todayPwdErrNum) {
        this.todayPwdErrNum = todayPwdErrNum;
    }

    @Column(name = "TOTAL_PWD_ERR_NUM",  precision = 1, scale = 0)
    public Integer getTotalPwdErrNum() {
        if(totalPwdErrNum == null) {
            return 0;
        }
        return totalPwdErrNum;
    }

    public void setTotalPwdErrNum(Integer totalPwdErrNum) {
        this.totalPwdErrNum = totalPwdErrNum;
    }

    @Column(name = "PAY_PWD_STATUS",  precision = 1, scale = 0)
    public Integer getPayPwdStatus() {
        if(payPwdStatus == null) {
            return 0;
        }
        return payPwdStatus;
    }

    public void setPayPwdStatus(Integer payPwdStatus) {
        this.payPwdStatus = payPwdStatus;
    }

    @Column(name = "PAY_QUS_ANSWER", length = 150)
    public String getPayQusAnswer() {
        return payQusAnswer;
    }

    public void setPayQusAnswer(String payQusAnswer) {
        this.payQusAnswer = payQusAnswer;
    }

    @Column(name = "TOTAL_PWD_QUS_ERR_NUM",  precision = 1, scale = 0)
    public Integer getTotalPwdQusErrNum() {
        if(totalPwdQusErrNum == null) {
            return 0;
        }
        return totalPwdQusErrNum;
    }

    public void setTotalPwdQusErrNum(Integer totalPwdQusErrNum) {
        this.totalPwdQusErrNum = totalPwdQusErrNum;
    }

    @Column(name = "PAY_QUS_ANS_STATUS",  precision = 1, scale = 0)
    public Integer getPayQusAnsStatus() {
        if(payQusAnsStatus == null) {
            return 0;
        }
        return payQusAnsStatus;
    }

    public void setPayQusAnsStatus(Integer payQusAnsStatus) {
        this.payQusAnsStatus = payQusAnsStatus;
    }

    @Column(name = "PAY_PWD_LOCK_TIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getPayPwdLockTime() {
        return payPwdLockTime;
    }

    public void setPayPwdLockTime(Date payPwdLockTime) {
        this.payPwdLockTime = payPwdLockTime;
    }

    @Column(name = "PAY_PWD_QUS_LOCK_TIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getPayPwdQusLockTime() {
        return payPwdQusLockTime;
    }

    public void setPayPwdQusLockTime(Date payPwdQusLockTime) {
        this.payPwdQusLockTime = payPwdQusLockTime;
    }

    /**
     * @return the activateCode
     */
    @Column(name = "ACTIVATE_CODE")
    public String getActivateCode() {
        return activateCode;
    }

    /**
     * @param activateCode the activateCode to set
     */
    public void setActivateCode(String activateCode) {
        this.activateCode = activateCode;
    }

    @Column(name = "TODAY_REAL_NAME_CERT_ERR_NUM",  precision = 1, scale = 0)
    public int getTodayRealNameCertErrNum() {
        return todayRealNameCertErrNum;
    }

    public void setTodayRealNameCertErrNum(int todayRealNameCertErrNum) {
        this.todayRealNameCertErrNum = todayRealNameCertErrNum;
    }

    @Column(name = "REAL_NAME_CERTIFY_STATUS")
    public String getRealNameCertStatus() {
        return realNameCertStatus;
    }

    public void setRealNameCertStatus(String realNameCertStatus) {
        this.realNameCertStatus = realNameCertStatus;
    }

    @Column(name = "REMARKS")
    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    @Column(name = "OPER_ID")
    public String getOperId() {
        return operId;
    }

    public void setOperId(String operId) {
        this.operId = operId;
    }

    @Column(name = "CERT_BACK_FILE_URL", length = 1000)
    public String getCertBackFileUrl() {
        return certBackFileUrl;
    }

    public void setCertBackFileUrl(String certBackFileUrl) {
        this.certBackFileUrl = certBackFileUrl;
    }

    @Column(name = "CERT_THUMB_FILE_URL", length = 1000)
    public String getCertThumbFileUrl() {
        return certThumbFileUrl;
    }

    public void setCertThumbFileUrl(String certThumbFileUrl) {
        this.certThumbFileUrl = certThumbFileUrl;
    }

    @Column(name = "CERT_BACK_THUMB_FILE_URL", length = 1000)
    public String getCertBackThumbFileUrl() {
        return certBackThumbFileUrl;
    }

    public void setCertBackThumbFileUrl(String certBackThumbFileUrl) {
        this.certBackThumbFileUrl = certBackThumbFileUrl;
    }

    @Column(name = "CERT_FILE_CREATED_TS")
    public Date getCertFileCreatedTs() {
        return certFileCreatedTs;
    }

    public void setCertFileCreatedTs(Date certFileCreatedTs) {
        this.certFileCreatedTs = certFileCreatedTs;
    }

    @Column(name = "CERT_FILE_AUDIT_TS")
    public Date getCertFileAuditTs() {
        return certFileAuditTs;
    }

    public void setCertFileAuditTs(Date certFileAuditTs) {
        this.certFileAuditTs = certFileAuditTs;
    }

    @Column(name = "CERT_LAUNCH_TIME")
    public Date getCertLaunchTime() {
        return certLaunchTime;
    }

    public void setCertLaunchTime(Date certLaunchTime) {
        this.certLaunchTime = certLaunchTime;
    }

	public String getMyProfession() {
		return myProfession;
	}

	@Column(name = "MYPROFESSION",length = 255)
	public void setMyProfession(String myProfession) {
		this.myProfession = myProfession;
	}

    @Column(name = "CERT_TERM")
    @Temporal(TemporalType.TIMESTAMP)
	public Date getCertTerm() {
		return certTerm;
	}

	public void setCertTerm(Date certTerm) {
		this.certTerm = certTerm;
	}

@Column(name = "MT_PAY_PWD", length = 150)
	public String getMtPayPwd() {
		return mtPayPwd;
	}

	public void setMtPayPwd(String mtPayPwd) {
		this.mtPayPwd = mtPayPwd;
	}
@Column(name = "TODAY_MT_PWD_ERR_NUM",  precision = 1, scale = 0)
	public Integer getTodayMtPwdErrNum() {
		return todayMtPwdErrNum;
	}

	public void setTodayMtPwdErrNum(Integer todayMtPwdErrNum) {
		this.todayMtPwdErrNum = todayMtPwdErrNum;
	}
@Column(name = "TOTAL_MT_PWD_ERR_NUM",  precision = 1, scale = 0)
	public Integer getTotalMtPwdErrNum() {
		return totalMtPwdErrNum;
	}

	public void setTotalMtPwdErrNum(Integer totalMtPwdErrNum) {
		this.totalMtPwdErrNum = totalMtPwdErrNum;
	}
@Column(name = "MT_PAY_PWD_STATUS",  precision = 1, scale = 0)
	public Integer getMtPayPwdStatus() {
		return mtPayPwdStatus;
	}

	public void setMtPayPwdStatus(Integer mtPayPwdStatus) {
		this.mtPayPwdStatus = mtPayPwdStatus;
	}
@Column(name = "TOTAL_MT_PWD_FIND_ERR_NUM",  precision = 1, scale = 0)
	public Integer getTotalMtPwdFindErrNum() {
		return totalMtPwdFindErrNum;
	}

	public void setTotalMtPwdFindErrNum(Integer totalMtPwdFindErrNum) {
		this.totalMtPwdFindErrNum = totalMtPwdFindErrNum;
	}
@Column(name = "MT_PAY_PWD_LOCK_TIME")
    @Temporal(TemporalType.TIMESTAMP)
	public Date getMtPayPwdLockTime() {
		return mtPayPwdLockTime;
	}

	public void setMtPayPwdLockTime(Date mtPayPwdLockTime) {
		this.mtPayPwdLockTime = mtPayPwdLockTime;
	}

	@Column(name = "NICK_NAME", length = 40)
	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}
	@Column(name = "MT_GESTURE_PWD", length = 30)
	public String getMtGesturePwd() {
		return mtGesturePwd;
	}

	public void setMtGesturePwd(String mtGesturePwd) {
		this.mtGesturePwd = mtGesturePwd;
	}
	@Column(name = "MT_GES_PWD_STATUS")
	public Integer getMtGesPwdStatus() {
		return mtGesPwdStatus;
	}

	public void setMtGesPwdStatus(Integer mtGesPwdStatus) {
		this.mtGesPwdStatus = mtGesPwdStatus;
	}
	@Column(name = "AVATAR_URL", length = 150)
	public String getAvatarUrl() {
		return avatarUrl;
	}

	public void setAvatarUrl(String avatarUrl) {
		this.avatarUrl = avatarUrl;
	}
	@Column(name = "PAY_CODE_STATUS")
	public Integer getPayCodeStatus() {
		return payCodeStatus;
	}

	public void setPayCodeStatus(Integer payCodeStatus) {
		this.payCodeStatus = payCodeStatus;
	}

	@Column(name = "FINGER_PWD_STATUS")
	public Integer getFingerPwdStatus() {
		return fingerPwdStatus;
	}

	public void setFingerPwdStatus(Integer fingerPwdStatus) {
		this.fingerPwdStatus = fingerPwdStatus;
	}
	@Column(name = "FINGER_PAY_UP_LIMIT")
	public BigDecimal getFingerPayUpLimit() {
		return fingerPayUpLimit;
	}

	public void setFingerPayUpLimit(BigDecimal fingerPayUpLimit) {
		this.fingerPayUpLimit = fingerPayUpLimit;
	}

	@Column(name="REAL_NAME_CERTIFY_STEP", length=2)
    public String getRealNameCertifyStep() {
        return realNameCertifyStep;
    }

    public void setRealNameCertifyStep(String realNameCertifyStep) {
        this.realNameCertifyStep = realNameCertifyStep;
    }

    @Column(name="CERT_NO_CHECK_NUM")
    public Integer getCertNoCheckNum() {
        return certNoCheckNum;
    }

    public void setCertNoCheckNum(Integer certNoCheckNum) {
        this.certNoCheckNum = certNoCheckNum;
    }


    @Column(name = "CERT_Handheld_ID_FILE_URL", length = 1000)
    public String getCertHandheldIDFileUrl() {
        return certHandheldIDFileUrl;
    }

    public void setCertHandheldIDFileUrl(String certHandheldIDFileUrl) {
        this.certHandheldIDFileUrl = certHandheldIDFileUrl;
    }


    @Column(name = "CERT_HANDHELD_ID_THUMB_URL", length = 1000)
    public String getCertHandheldIDThumbFileUrl() {
        return certHandheldIDThumbFileUrl;
    }

    public void setCertHandheldIDThumbFileUrl(String certHandheldIDThumbFileUrl) {
        this.certHandheldIDThumbFileUrl = certHandheldIDThumbFileUrl;
    }

    @Column(name = "REGISTER_IP", length = 20)
    public String getRegisterIp() {
        return registerIp;
    }

    public void setRegisterIp(String registerIp) {
        this.registerIp = registerIp;
    }


	/*zhoutong add 20160913 start*/
	@Column(name = "CA_CERT_SWITCH", length = 2)
	public String getCaCertSwitch() {
		return caCertSwitch;
	}

	public void setCaCertSwitch(String caCertSwitch) {
		this.caCertSwitch = caCertSwitch;
	}
	@Column(name = "DYN_PWD_SWITCH", length = 2)
	public String getDynPwdSwitch() {
		return dynPwdSwitch;
	}

	public void setDynPwdSwitch(String dynPwdSwitch) {
		this.dynPwdSwitch = dynPwdSwitch;
	}

    @Column(name = "CERT_FACE_ID_FILE_URL", length = 1000)
    public String getCertFaceIDFileUrl() {
        return certFaceIDFileUrl;
    }

    public void setCertFaceIDFileUrl(String certFaceIDFileUrl) {
        this.certFaceIDFileUrl = certFaceIDFileUrl;
    }
    @Column(name = "CERT_FACE_ID_THUMB_URL", length = 1000)
    public String getCertFaceIDThumbFileUrl() {
        return certFaceIDThumbFileUrl;
    }

    public void setCertFaceIDThumbFileUrl(String certFaceIDThumbFileUrl) {
        this.certFaceIDThumbFileUrl = certFaceIDThumbFileUrl;
    }
    @Column(name = "CERT_VIDEO_FILE_URL", length = 1000)
    public String getCertVideoFileUrl() {
        return certVideoFileUrl;
    }

    public void setCertVideoFileUrl(String certVideoFileUrl) {
        this.certVideoFileUrl = certVideoFileUrl;
    }
    @Column(name = "REAL_NAME_CHANNEL", length = 3)
    public String getRealNameChannel() {
        return realNameChannel;
    }

    public void setRealNameChannel(String realNameChannel) {
        this.realNameChannel = realNameChannel;
    }

    @Column(name = "CERT_FACE_ID_ACTION", length = 1000)
    public String getCertFaceIdAction() {
        return certFaceIdAction;
    }

    public void setCertFaceIdAction(String certFaceIdAction) {
        this.certFaceIdAction = certFaceIdAction;
    }

    @Column(name = "CERT_FACE_ID_SCORE")
    public BigDecimal getCertFaceIdScore() {
        return certFaceIdScore;
    }

    public void setCertFaceIdScore(BigDecimal certFaceIdScore) {
        this.certFaceIdScore = certFaceIdScore;
    }
    public static long getSerialversionuid() {
        return serialVersionUID;
    }

    @Column(name = "IS_EMPLOYEES")
	public String getIsEmployees() {
		return isEmployees;
	}


	public void setIsEmployees(String isEmployees) {
		this.isEmployees = isEmployees;
	}
	
	@Column(name = "MOB_CA_CERT_SWITCH")
	public String getMobCaCertSwitch() {
		return mobCaCertSwitch;
	}

	public void setMobCaCertSwitch(String mobCaCertSwitch) {
		this.mobCaCertSwitch = mobCaCertSwitch;
	}

	@Column(name = "CUSTOM_PAY_PWD")
	public String getCustomPayPwd() {
		return customPayPwd;
	}

	public void setCustomPayPwd(String customPayPwd) {
		this.customPayPwd = customPayPwd;
	}
	@Column(name = "TODAY_CUSTOM_PWD_ERR_NUM",  precision = 1, scale = 0)
	public Integer getTodayCustomPwdErrNum() {
		if(todayCustomPwdErrNum == null) {
			return 0;
		}
		return todayCustomPwdErrNum;
	}

	public void setTodayCustomPwdErrNum(Integer todayCustomPwdErrNum) {
		this.todayCustomPwdErrNum = todayCustomPwdErrNum;
	}
	@Column(name = "TOTAL_CUSTOM_PWD_ERR_NUM",  precision = 1, scale = 0)
	public Integer getTotalCustomPwdErrNum() {
		if(totalCustomPwdErrNum == null) {
			return 0;
		}
		return totalCustomPwdErrNum;
	}

	public void setTotalCustomPwdErrNum(Integer totalCustomPwdErrNum) {
		this.totalCustomPwdErrNum = totalCustomPwdErrNum;
	}
	@Column(name = "CUSTOM_PAY_PWD_STATUS",  precision = 1, scale = 0)
	public Integer getCustomPayPwdStatus() {
		if(customPayPwdStatus == null) {
			return 0;
		}
		return customPayPwdStatus;
	}
	public void setCustomPayPwdStatus(Integer customPayPwdStatus) {
		this.customPayPwdStatus = customPayPwdStatus;
	}
	@Column(name = "CUSTOM_PAY_PWD_LOCK_TIME")
	public Date getCustomPayPwdLockTime() {
		return customPayPwdLockTime;
	}

	public void setCustomPayPwdLockTime(Date customPayPwdLockTime) {
		this.customPayPwdLockTime = customPayPwdLockTime;
	}
	@Column(name = "MER_CUST_ID")
	public String getMerCustId() {
		return merCustId;
	}

	public void setMerCustId(String merCustId) {
		this.merCustId = merCustId;
	}
	
	@Override
	public String toString() {
		return "CustPersonInfo [custId=" + custId + ", version=" + version + ", isRealNameCertify=" + isRealNameCertify
				+ ", isMobileCertify=" + isMobileCertify + ", custStat=" + custStat + ", certType=" + certType
				+ ", certNo=" + LoggerMaskUtils.maskString(certNo) + ", custName=" + custName + ", custAddr=" + custAddr + ", custProvinceCode="
				+ custProvinceCode + ", custCityCode=" + custCityCode + ", custZip=" + custZip + ", custTel=" + LoggerMaskUtils.maskString(custTel)
				+ ", custMob=" + LoggerMaskUtils.maskString(custMob) + ", realNameCertifyTime=" + realNameCertifyTime + ", mobileCertifyTime="
				+ mobileCertifyTime + ", createdTs=" + createdTs + ", lastUpdTs=" + lastUpdTs + ", lastUpdTrancode="
				+ lastUpdTrancode + ", email=" + email + ", privilege=" + privilege + ", certFileUrl=" + certFileUrl
				+ ", custSex=" + custSex + ", custCoutryRegion=" + custCoutryRegion + ", certValidityDateS="
				+ certValidityDateS + ", certValidityDateE=" + certValidityDateE + ", regType=" + regType
				+ ", custProession=" + custProession + ", certTerm=" + certTerm + ", activateCode=" + activateCode
				+ ", payPwd=" + payPwd + ", payQus=" + payQus + ", todayPwdErrNum=" + todayPwdErrNum
				+ ", totalPwdErrNum=" + totalPwdErrNum + ", payPwdStatus=" + payPwdStatus + ", payQusAnswer="
				+ payQusAnswer + ", totalPwdQusErrNum=" + totalPwdQusErrNum + ", payQusAnsStatus=" + payQusAnsStatus
				+ ", payPwdLockTime=" + payPwdLockTime + ", payPwdQusLockTime=" + payPwdQusLockTime + ", mtPayPwd="
				+ mtPayPwd + ", todayMtPwdErrNum=" + todayMtPwdErrNum + ", totalMtPwdErrNum=" + totalMtPwdErrNum
				+ ", mtPayPwdStatus=" + mtPayPwdStatus + ", totalMtPwdFindErrNum=" + totalMtPwdFindErrNum
				+ ", mtPayPwdLockTime=" + mtPayPwdLockTime + ", todayRealNameCertErrNum=" + todayRealNameCertErrNum
				+ ", realNameCertStatus=" + realNameCertStatus + ", remarks=" + remarks + ", operId=" + operId
				+ ", certBackFileUrl=" + certBackFileUrl + ", certThumbFileUrl=" + certThumbFileUrl
				+ ", certBackThumbFileUrl=" + certBackThumbFileUrl + ", certFileCreatedTs=" + certFileCreatedTs
				+ ", certFileAuditTs=" + certFileAuditTs + ", certLaunchTime=" + certLaunchTime + ", myProfession="
				+ myProfession + ", nickName=" + nickName + ", mtGesturePwd=" + mtGesturePwd + ", mtGesPwdStatus="
				+ mtGesPwdStatus + ", avatarUrl=" + avatarUrl + ", payCodeStatus=" + payCodeStatus
				+ ", fingerPwdStatus=" + fingerPwdStatus + ", fingerPayUpLimit=" + fingerPayUpLimit + ", caCertSwitch="
				+ caCertSwitch + ", dynPwdSwitch=" + dynPwdSwitch + ", realNameCertifyStep=" + realNameCertifyStep
				+ ", certNoCheckNum=" + certNoCheckNum + ", certHandheldIDFileUrl=" + certHandheldIDFileUrl
				+ ", certHandheldIDThumbFileUrl=" + certHandheldIDThumbFileUrl + ", registerIp=" + registerIp
				+ ", certFaceIDFileUrl=" + certFaceIDFileUrl + ", certFaceIDThumbFileUrl=" + certFaceIDThumbFileUrl
				+ ", certVideoFileUrl=" + certVideoFileUrl + ", realNameChannel=" + realNameChannel
				+ ", certFaceIdAction=" + certFaceIdAction + ", certFaceIdScore=" + certFaceIdScore + ", isEmployees="
				+ isEmployees + ", mobCaCertSwitch=" + mobCaCertSwitch + ", customPayPwd=" + customPayPwd
				+ ", todayCustomPwdErrNum=" + todayCustomPwdErrNum + ", totalCustomPwdErrNum=" + totalCustomPwdErrNum
				+ ", customPayPwdStatus=" + customPayPwdStatus + ", customPayPwdLockTime=" + customPayPwdLockTime + ""
						+ ", merCustId=" + merCustId + "]";
	}


}
